package com.scsj.cloud.authority.service;

import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.scsj.cloud.authority.dao.SysUserMapper;
import com.scsj.cloud.authority.model.SysUser;

@Service
public class SysUserService {

	private final Logger logger=LoggerFactory.getLogger(this.getClass());
	
	@Autowired
	private SysUserMapper userMapper;
	
	
	/**
	 * Description: 用户信息-查询单个用户信息
	 * @param  userId  用户ID     
	 * @return sysUser             
	 * @Author caoxiubin
	 * @Date: 2019年4月11日 下午16:21:53
	 */
	@Transactional(readOnly=true)
	public SysUser findOne(int userId) {
		
		SysUser sysUser = null;
		try{
			sysUser = this.userMapper.selectByPrimaryKey(userId);		
		}catch(Exception e){
			logger.error("用户信息-查询单个用户 findOne 方法出现错误："+e.getMessage(),e);
		}
		return sysUser;
	}
	
	
	/**
	 * Description: 用户信息-查询全部用户信息
	 * @return List<SysUser>             
	 * @Author caoxiubin
	 * @Date: 2019年4月11日 下午16:21:53
	 */
	@Transactional(readOnly = true)
	public List<SysUser> findAll() {
		
		List<SysUser> userList = null;
		try{
			userList = this.userMapper.selectAll();
		}catch(Exception e){
			logger.error("用户信息-查询全部用户 findAll 方法出现错误："+e.getMessage(),e);
		}
		return userList;
	}

	
	/**
	 * Description: 用户信息-新增用户信息
	 * @param  sysUser
	 * @return int             
	 * @Author caoxiubin
	 * @Date: 2019年4月11日 下午16:21:53
	 */
	@Transactional(readOnly = false)
	public int insert(SysUser sysUser) {
		int id = 0; //最新插入数据后自增的主键
		try{
			id = this.userMapper.insert(sysUser);
		}catch(Exception e){
			logger.error("用户信息-新增用户 insert 方法出现错误："+e.getMessage(),e);
		}
		return id;
	}
	
	
	/**
	 * Description: 用户信息-删除用户信息
	 * @param  sysUser
	 * @return int             
	 * @Author caoxiubin
	 * @Date: 2019年4月11日 下午16:21:53
	 */
	@Transactional(readOnly = false)
	public int delete(int userId) {
		int id = 0; 
		try{
			id = this.userMapper.deleteByPrimaryKey(userId);
		}catch(Exception e){
			logger.error("用户信息-删除用户 delete 方法出现错误："+e.getMessage(),e);
		}
		return id;
	}
	
	
	/**
	 * Description: 用户信息-修改用户信息
	 * @param  sysUser
	 * @return int             
	 * @Author caoxiubin
	 * @Date: 2019年4月11日 下午16:21:53
	 */
	@Transactional(readOnly = false)
	public int update(SysUser sysUser) {
		int id = 0; 
		try{
			id = this.userMapper.updateByPrimaryKey(sysUser);
		}catch(Exception e){
			logger.error("用户信息-修改用户 update 方法出现错误："+e.getMessage(),e);
		}
		return id;
	}
	
	
	
}
